/*
* Copyright© 2018 Shanxi Lu'an Taihang Laihui Net Tech co.,LTD.
*/
package com.laihuichuxing.netty.server.server.module.lbs.passenger;

import com.laihuichuxing.netty.common.core.annotion.SocketCommand;
import com.laihuichuxing.netty.common.core.annotion.SocketModule;
import com.laihuichuxing.netty.common.core.session.Session;
import com.laihuichuxing.socket.LbsCmd;
import com.laihuichuxing.socket.ModuleId;

/**
 * Description: 乘客定位
 *
 * @author YangGuang
 * @since: 1.0
 * Create Date Time: 2018/10/10 16:51
 * Update Date Time:
 */
@SocketModule(module = ModuleId.LBS)
public interface PassengerPositionHandler {

    /**
     * Description: 乘客下单定位
     * @param session session
     * @param data data
     * @author YangGuang
     * Create Date Time: 2018/10/10 16:56
     * Update Date Time:
     */
    @SocketCommand(cmd = LbsCmd.PASSENGER_ORDER)
    void passengerOrder(Session session, byte[] data);
     /**
      * Description: 乘客取消订单
      * @param session session
      * @param data data
      * Author: Qinxuefeng
      * Version: 1.0
      * Create Date Time: 2018/10/17 15:45.
      * Update Date Time: 
      */
    @SocketCommand(cmd = LbsCmd.PASSENGER_CANCEL)
    void passengerCancelOrder(Session session, byte[] data);

    /**
     * Description: 司机发车通知乘客
     * @param session session
     * @param data data
     * @author YangGuang
     * Create Date Time: 2018/10/18 10:57
     * Update Date Time:
     */
    @SocketCommand(cmd = LbsCmd.DEPARTUDE_NOTIFY)
    void driverDeparture(Session session,byte[] data);

    /**
     * Description: 司机确认到达通知乘客支取
     * @param session session
     * @param data data
     * @author YangGuang
     * Create Date Time: 2018/10/18 11:02
     * Update Date Time:
     */
    @SocketCommand(cmd = LbsCmd.DRIVER_RECEIPT)
    void driverReceipt(Session session,byte[] data);

    /**
     * Description: 回传位置
     * @param session session
     * @param data data
     * @author YangGuang
     * Create Date Time: 2018/10/19 10:24
     * Update Date Time:
     */
    @SocketCommand(cmd = LbsCmd.RETURN_POSITION)
    void returnPosition(Session session,byte[] data);

    /**
     * Description: 司机接到乘客通知乘客
     * @param session session
     * @param data data
     * @author YangGuang
     * Create Date Time: 2018/10/24 15:55
     * Update Date Time:
     */
    @SocketCommand(cmd = LbsCmd.TAKE_NOTIFY)
    void takeNotify(Session session,byte[] data);
}
